import logging
import os
import time

class MyLogger():

    def __init__(self):
        # 实例化一个记录器
        self.logger = logging.getLogger()
        # 设置记录的日志等级，默认日志等级是waring，设置为info
        self.logger.setLevel(logging.INFO)

        # 实例化一个控制台输出的处理器
        sh = logging.StreamHandler()
        # 设置日志等级为info
        sh.setLevel(logging.INFO)

        # 处理日志文件地址
        my_logger_path = os.path.dirname(__file__)
        log_file_path = os.path.join(my_logger_path, '..', 'log')
        if not os.path.isdir(log_file_path):
            os.makedirs(log_file_path)
        log_file_name = "{}.log".format(time.strftime("%Y-%m-%d"))
        file_name = os.path.join(log_file_path, log_file_name)
        # 实例化一个文件输出的处理器
        fh = logging.FileHandler(filename=file_name, encoding='utf-8')
        # 设置日志等级
        fh.setLevel(logging.INFO)

        # 定义日志输出格式
        formatter = logging.Formatter("%(asctime)s|%(levelname)s|%(filename)s|%(lineno)s|%(message)s")

        # 设置处理器的日志输出格式
        fh.setFormatter(formatter)
        sh.setFormatter(formatter)

        # 将处理器添加到记录器中
        self.logger.addHandler(fh)
        self.logger.addHandler(sh)

logger = MyLogger().logger

# logger.debug("这是debug级别的日志")
# logger.info("这是info级别的日志")
# logger.warning("这是waring级别的日志")
# logger.error("这是error级别的日志")
# logger.critical("这是critical级别的日志")